'''
要想使用其他模块的功能，需要先导入模块，然后才能使用模块中的功能
导入模块的语法：
import 模块名               #导入模块，导入后可以使用模块中的所有功能
from 模块名 import 功能名    #导入模块中的指定功能，导入后可以直接使用功能名来使用这些功能
from 模块名 import *        #导入模块中的所有功能,但是不建议使用，因为会导致命名冲突
import 模块名 as 别名#导入模块时，可以给模块起一个别名，这样可以避免命名冲突
from 模块名 import 功能名 as 别名#导入模块中的功能时，可以给功能起一个别名，这样可以避免命名冲突
'''
'''
#1.导入整个模块【可以使用模块中的所有成员】，使用模块成员，需使用模块名.成员名的方式来使用
import calc#导入calc模块，calc是模块名，calc.py是模块文件，calc.py中包含了add,sub,mul,div四个功能，我们可以使用模块名.功能名的方式来使用这些功能
print(calc.add(1, 2))#3
print(calc.sub(1, 2))#-1
print(calc.mul(1, 2))#2
print(calc.div(1, 2))#0.5

#2.导入模块中的某个成员【可以使用模块中的指定成员】，使用模块的成员，需要使用 成员名 的方式来使用
from calc import add#导入calc模块中的add功能，我们可以直接使用功能名来使用这些功能
print(f"add:{add(1, 2)}")

#3.导入模块中的所有成员【可以使用模块中的所有成员】，使用模块的成员，需要使用 成员名 的方式来使用
from calc import *       #导入calc模块中的所有功能，我们可以直接使用功能名来使用这些功能
print(f"add:{add(1, 2)}")#3
print(f"sub:{sub(1, 2)}")#-1
print(f"mul:{mul(1, 2)}")#2
print(f"div:{div(1, 2)}")#0.5
'''
#4.导入模块时，可以给模块起一个别名，这样可以避免命名冲突
#import calc as c#导入calc模块，我们可以使用模块名.功能名的方式来使用这些功能，但是我们可以给模块起一个别名，这样可以避免命名冲突，别名可以是任意的，但是建议使用简短的别名，这样可以提高代码的可读性
#print(c.add(1, 2))#3
#print(c.sub(1, 2))#-1
#print(c.mul(1, 2))#2
#print(c.div(1, 2))#0.5
from calc import add as a#导入calc模块中的add功能，我们可以直接使用功能名来使用这些功能，但是我们可以给功能起一个别名，这样可以避免命名冲突，别名可以是任意的，但是建议使用简短的别名，这样可以提高代码的可读性
print(f"add:{a(1, 2)}")#3
